<?php

namespace App\Jobs;

use App\Model\Edit;
use App\Model\Get;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\Cache;
use Illuminate\Foundation\Bus\Dispatchable;
class ProcessPodcast implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $orders;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct()
    {
        echo 'get';
        // 这里解释下，Get 为一个模型，作用是拿到数据的模型，我这里拿到了 对应 id 的 order 数据
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        echo 'timeout';die;
        if ( $this->orders->order_state == 2 ) return;
        // 如果 执行这个方法的时候，说明已经过去了两分钟了，这个时候我们先判断 该 order 的状态是否为提交了的状态，如果是，那就不往下执行

        /**
         * order_state = 1 未支付状态
         * order_state = 2 已支付状态
         * order_state = 3 取消状态
         */

        $ops = Get::getOrderPS($this->orders->id);// 拿到该 order 数据下关联的 乘客订单

        foreach ( $ops as $kk => $val ) {
            Edit::orderPSCancel($val->id,2);// 改变乘客订单的状态
        }

        // Edit 的作用是修改数据
        Edit::changeOrderState($this->orders->id,3);// 改变 该订单状态
    }
}
